textview: Look up the drop location iter on the right coordinates on DND
authorCarlos Garnacho <carlosg@gnome.org>
Thu, 24 Sep 2015 18:25:26 +0000 (20:25 +0200)
committerCarlos Garnacho <carlosg@gnome.org>
Thu, 24 Sep 2015 18:47:55 +0000 (20:47 +0200)
We are passing widget coordinates to gtk_text_view_window_to_buffer_coords()
which expects coordinates to be relative to the text window in this case.
This may result in drop coordinates being displaced if the side windows to
the top/left sides are visible and taking space, so the DnD indicator will
point to the wrong position.

This can be seen on gnome-builder and gedit when displaying line numbers.

gtk/gtktextview.c

index b04a90a1593e7f2461e8a171c07a7d32f8f356ae..787e6e4640aaa2f017098ce5043d7732083e9d83 100644 (file)
@@ -8243,6 +8243,9 @@ gtk_text_view_drag_motion (GtkWidget        *widget,
       y > (target_rect.y + target_rect.height))
     return FALSE; /* outside the text window, allow parent widgets to handle event */
 
+  x -= target_rect.x;
+  y -= target_rect.y;
+
   gtk_text_view_window_to_buffer_coords (text_view,
                                          GTK_TEXT_WINDOW_WIDGET,
                                          x, y,